home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #9 / Amiga Plus CD - 2004 - No. 09.iso / amigaplus / tools / amigaos4_only / mpega_libmad / mpega_68k_os4.s < prev    next >
Text File  |  2004-08-03  |  14KB  |  485 lines

  1. /*
  2. ** This file was automatically generated by fdtrans.
  3. ** Do not edit it by hand. Instead, edit the sfd file
  4. ** that was used to generate this file
  5. */
  6.  
  7. #include "exec/interfaces.i"
  8. #include "exec/libraries.i"
  9. #include "exec/emulation.i"
  10. #include "mpega.i"
  11.  
  12.  
  13. /* -------------------- Open ---------------------------*/
  14.     .section   .data
  15.     .globl     stub_Open
  16.     .type      stub_Open, @function
  17.  
  18. stub_Open:
  19.     .short     0x4ef8                /* JMP.w */
  20.     .short     0                     /* Indicate switch */
  21.     .short     1                     /* Trap type */
  22.     .globl        stub_OpenPPC    
  23.     .long      stub_OpenPPC
  24.     /* Register mapping */
  25.     .byte      2
  26.     .byte      1,REG68K_A7          
  27.     .byte      3,REG68K_A6
  28.  
  29.     .section .text
  30.     .align     4
  31.  
  32. stub_OpenPPC:
  33.         addi       r12, r1, -16          /* Calculate stackframe size */
  34.         rlwinm     r12, r12, 0, 0, 27    /* Align it */
  35.         stw        r1, 0(r12)            /* Store backchain pointer */
  36.         mr         r1, r12               /* Set real stack pointer */
  37.  
  38.         stw        r11,12(r1)                /* Store Enter68kQuick vector */
  39.  
  40.         lhz        r12,LIB_POSSIZE(r3)
  41.         add        r3, r3, r12                /* by addind posSize */
  42.         lwz        r3, ExtLib_ILibrary(r3) /* Get the real interface pointer */
  43.  
  44.         CallLib    lmi_Open
  45.         
  46.         lwz        r11,12(r1)
  47.         mtlr    r11
  48.     
  49.         lwz     r1, 0(r1)                /* Cleanup stack frame */
  50.  
  51.         blrl                            /* Return to emulation */
  52.         .globl       stub_Open68K
  53.         .long      stub_Open68K
  54.         .byte      0                     /* Flags */
  55.         .byte      2                     /* Two registers (a7 and d0) */
  56.         .byte      1                     /* Map r1 */
  57.         .byte      REG68K_A7             /* to A7 */
  58.         .byte      3                     /* Map r3 */
  59.         .byte      REG68K_D0             /* to D0 */
  60.         .section .data
  61.         .align     4
  62.  
  63. stub_Open68K:
  64.     .short     0x4e75                /* RTS */
  65.  
  66.  
  67.  
  68. /* -------------------- Close ---------------------------*/
  69.     .section .data
  70.     .globl     stub_Close
  71.     .type      stub_Close, @function
  72.  
  73. stub_Close:
  74.     .short     0x4ef8                /* JMP.w */
  75.     .short     0                     /* Indicate switch */
  76.     .short     1                     /* Trap type */
  77.     .globl     stub_ClosePPC
  78.     .long      stub_ClosePPC
  79.     /* Register mapping */
  80.     .byte      2
  81.     .byte      1                     /* r1 */
  82.     .byte      REG68K_A7             /* maps to a7 */
  83.     .byte       3,REG68K_A6
  84.  
  85.     .section .text    
  86.     .align     4
  87.  
  88. stub_ClosePPC:
  89.         addi       r12, r1, -16          /* Calculate stackframe size */
  90.         rlwinm     r12, r12, 0, 0, 27    /* Align it */
  91.         stw        r1, 0(r12)            /* Store backchain pointer */
  92.         mr         r1, r12               /* Set real stack pointer */
  93.  
  94.         stw        r11,12(r1)                /* Store Enter68kQuick vector */
  95.  
  96.         lhz        r12,LIB_POSSIZE(r3)
  97.         add        r3, r3, r12                /* by addind posSize */
  98.         lwz        r3, ExtLib_ILibrary(r3) /* Get the real interface pointer */
  99.  
  100.         CallLib    lmi_Close
  101.         
  102.         lwz        r11,12(r1)
  103.         mtlr    r11
  104.     
  105.         lwz     r1, 0(r1)                /* Cleanup stack frame */
  106.  
  107.         blrl                            /* Return to emulation */
  108.         .globl stub_Close68K
  109.     .long      stub_Close68K
  110.     .byte      0                     /* Flags */
  111.     .byte      1                     /* One register (a7 only) */
  112.     .byte      1                     /* Map r1 */
  113.     .byte      REG68K_A7             /* to A7 */
  114.     .section    .data
  115.     .align     4
  116.  
  117. stub_Close68K:
  118.     .short     0x4e75                /* RTS */
  119.  
  120.  
  121.  
  122. /* -------------------- Expunge ---------------------------*/
  123.         .section .data
  124.     .globl     stub_Expunge
  125.     .type      stub_Expunge, @function
  126.  
  127. stub_Expunge:
  128.     .short     0x7000                /* moveq #0, d0 */
  129.     .short     0x4e75                /* RTS */
  130.  
  131.  
  132.  
  133. /* -------------------- RESERVED ---------------------------*/
  134.         .section .data
  135.     .globl     stub_Reserved
  136.     .type      stub_Reserved, @function
  137.  
  138. stub_Reserved:
  139.     .short     0x7000                /* moveq #0, d0 */
  140.     .short     0x4e75                /* RTS */
  141.  
  142.  
  143. /* ----------------------------------------------------------------- 
  144.     MPEGA_open (offset -30)
  145.    ----------------------------------------------------------------- */
  146.     .globl stub_MPEGA_open
  147.     .type stub_MPEGA_open, @function
  148.     .section .data
  149. stub_MPEGA_open:
  150.     .short 0x4ef8
  151.     .short 0,1
  152.     .globl stub_MPEGA_openPPC
  153.     .long  stub_MPEGA_openPPC
  154.     .byte 5
  155.     .byte 1, REG68K_A7 /* r1<-A7 */
  156.     .byte 3, REG68K_A6 /* r3<-A6 */
  157.     .byte 4, REG68K_A0 /* r4<-A0 */
  158.     .byte 5, REG68K_A1 /* r5<-A1 */
  159.     .byte 6, REG68K_A4 /* r6<-A4 */
  160.     .section .text
  161.     .align 2
  162. stub_MPEGA_openPPC:
  163.     addi    r12, r1, -16                /* Calculate stackframe size */
  164.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  165.     stw     r1, 0(r12)                /* Store backchain pointer */
  166.     mr      r1, r12                    /* Set real stack pointer */
  167.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  168.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  169.     add     r3, r3, r12                /* by addind posSize */
  170.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  171.  
  172.     CallLib IMPEGA_MPEGA_open
  173.     lwz        r11,12(r1)
  174.     mtlr    r11
  175.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  176.  
  177.     blrl                         /* Return to emulation */
  178.     .globl  stub_MPEGA_open68K
  179.     .long   stub_MPEGA_open68K
  180.     .byte   0                    /* Flags */
  181.     .byte   2
  182.     .byte   1, REG68K_A7
  183.     .byte   3, REG68K_D0
  184.     .section .data
  185.     .align  4
  186. stub_MPEGA_open68K:
  187.     .short    0x4e75                    /* RTS */
  188.  
  189.  
  190. /* ----------------------------------------------------------------- 
  191.     MPEGA_close (offset -36)
  192.    ----------------------------------------------------------------- */
  193.     .globl stub_MPEGA_close
  194.     .type stub_MPEGA_close, @function
  195.     .section .data
  196. stub_MPEGA_close:
  197.     .short 0x4ef8
  198.     .short 0,1
  199.     .globl stub_MPEGA_closePPC
  200.     .long  stub_MPEGA_closePPC
  201.     .byte 4
  202.     .byte 1, REG68K_A7 /* r1<-A7 */
  203.     .byte 3, REG68K_A6 /* r3<-A6 */
  204.     .byte 4, REG68K_A0 /* r4<-A0 */
  205.     .byte 5, REG68K_A4 /* r5<-A4 */
  206.     .section .text
  207.     .align 2
  208. stub_MPEGA_closePPC:
  209.     addi    r12, r1, -16                /* Calculate stackframe size */
  210.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  211.     stw     r1, 0(r12)                /* Store backchain pointer */
  212.     mr      r1, r12                    /* Set real stack pointer */
  213.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  214.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  215.     add     r3, r3, r12                /* by addind posSize */
  216.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  217.  
  218.     CallLib IMPEGA_MPEGA_close
  219.     lwz        r11,12(r1)
  220.     mtlr    r11
  221.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  222.  
  223.     blrl                         /* Return to emulation */
  224.     .globl  stub_MPEGA_close68K
  225.     .long   stub_MPEGA_close68K
  226.     .byte   0                    /* Flags */
  227.     .byte   1
  228.     .byte   1, REG68K_A7
  229.     .section .data
  230.     .align  4
  231. stub_MPEGA_close68K:
  232.     .short    0x4e75                    /* RTS */
  233.  
  234.  
  235. /* ----------------------------------------------------------------- 
  236.     MPEGA_decode_frame (offset -42)
  237.    ----------------------------------------------------------------- */
  238.     .globl stub_MPEGA_decode_frame
  239.     .type stub_MPEGA_decode_frame, @function
  240.     .section .data
  241. stub_MPEGA_decode_frame:
  242.     .short 0x4ef8
  243.     .short 0,1
  244.     .globl stub_MPEGA_decode_framePPC
  245.     .long  stub_MPEGA_decode_framePPC
  246.     .byte 5
  247.     .byte 1, REG68K_A7 /* r1<-A7 */
  248.     .byte 3, REG68K_A6 /* r3<-A6 */
  249.     .byte 4, REG68K_A0 /* r4<-A0 */
  250.     .byte 5, REG68K_A1 /* r5<-A1 */
  251.     .byte 6, REG68K_A4 /* r6<-A4 */
  252.     .section .text
  253.     .align 2
  254. stub_MPEGA_decode_framePPC:
  255.     addi    r12, r1, -16                /* Calculate stackframe size */
  256.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  257.     stw     r1, 0(r12)                /* Store backchain pointer */
  258.     mr      r1, r12                    /* Set real stack pointer */
  259.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  260.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  261.     add     r3, r3, r12                /* by addind posSize */
  262.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  263.  
  264.     CallLib IMPEGA_MPEGA_decode_frame
  265.     lwz        r11,12(r1)
  266.     mtlr    r11
  267.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  268.  
  269.     blrl                         /* Return to emulation */
  270.     .globl  stub_MPEGA_decode_frame68K
  271.     .long   stub_MPEGA_decode_frame68K
  272.     .byte   0                    /* Flags */
  273.     .byte   2
  274.     .byte   1, REG68K_A7
  275.     .byte   3, REG68K_D0
  276.     .section .data
  277.     .align  4
  278. stub_MPEGA_decode_frame68K:
  279.     .short    0x4e75                    /* RTS */
  280.  
  281.  
  282. /* ----------------------------------------------------------------- 
  283.     MPEGA_seek (offset -48)
  284.    ----------------------------------------------------------------- */
  285.     .globl stub_MPEGA_seek
  286.     .type stub_MPEGA_seek, @function
  287.     .section .data
  288. stub_MPEGA_seek:
  289.     .short 0x4ef8
  290.     .short 0,1
  291.     .globl stub_MPEGA_seekPPC
  292.     .long  stub_MPEGA_seekPPC
  293.     .byte 5
  294.     .byte 1, REG68K_A7 /* r1<-A7 */
  295.     .byte 3, REG68K_A6 /* r3<-A6 */
  296.     .byte 4, REG68K_A0 /* r4<-A0 */
  297.     .byte 5, REG68K_D0 /* r5<-D0 */
  298.     .byte 6, REG68K_A4 /* r6<-A4 */
  299.     .section .text
  300.     .align 2
  301. stub_MPEGA_seekPPC:
  302.     addi    r12, r1, -16                /* Calculate stackframe size */
  303.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  304.     stw     r1, 0(r12)                /* Store backchain pointer */
  305.     mr      r1, r12                    /* Set real stack pointer */
  306.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  307.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  308.     add     r3, r3, r12                /* by addind posSize */
  309.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  310.  
  311.     CallLib IMPEGA_MPEGA_seek
  312.     lwz        r11,12(r1)
  313.     mtlr    r11
  314.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  315.  
  316.     blrl                         /* Return to emulation */
  317.     .globl  stub_MPEGA_seek68K
  318.     .long   stub_MPEGA_seek68K
  319.     .byte   0                    /* Flags */
  320.     .byte   2
  321.     .byte   1, REG68K_A7
  322.     .byte   3, REG68K_D0
  323.     .section .data
  324.     .align  4
  325. stub_MPEGA_seek68K:
  326.     .short    0x4e75                    /* RTS */
  327.  
  328.  
  329. /* ----------------------------------------------------------------- 
  330.     MPEGA_time (offset -54)
  331.    ----------------------------------------------------------------- */
  332.     .globl stub_MPEGA_time
  333.     .type stub_MPEGA_time, @function
  334.     .section .data
  335. stub_MPEGA_time:
  336.     .short 0x4ef8
  337.     .short 0,1
  338.     .globl stub_MPEGA_timePPC
  339.     .long  stub_MPEGA_timePPC
  340.     .byte 4
  341.     .byte 1, REG68K_A7 /* r1<-A7 */
  342.     .byte 3, REG68K_A6 /* r3<-A6 */
  343.     .byte 4, REG68K_A0 /* r4<-A0 */
  344.     .byte 5, REG68K_A1 /* r5<-A1 */
  345.     .section .text
  346.     .align 2
  347. stub_MPEGA_timePPC:
  348.     addi    r12, r1, -16                /* Calculate stackframe size */
  349.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  350.     stw     r1, 0(r12)                /* Store backchain pointer */
  351.     mr      r1, r12                    /* Set real stack pointer */
  352.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  353.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  354.     add     r3, r3, r12                /* by addind posSize */
  355.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  356.  
  357.     CallLib IMPEGA_MPEGA_time
  358.     lwz        r11,12(r1)
  359.     mtlr    r11
  360.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  361.  
  362.     blrl                         /* Return to emulation */
  363.     .globl  stub_MPEGA_time68K
  364.     .long   stub_MPEGA_time68K
  365.     .byte   0                    /* Flags */
  366.     .byte   2
  367.     .byte   1, REG68K_A7
  368.     .byte   3, REG68K_D0
  369.     .section .data
  370.     .align  4
  371. stub_MPEGA_time68K:
  372.     .short    0x4e75                    /* RTS */
  373.  
  374.  
  375. /* ----------------------------------------------------------------- 
  376.     MPEGA_find_sync (offset -60)
  377.    ----------------------------------------------------------------- */
  378.     .globl stub_MPEGA_find_sync
  379.     .type stub_MPEGA_find_sync, @function
  380.     .section .data
  381. stub_MPEGA_find_sync:
  382.     .short 0x4ef8
  383.     .short 0,1
  384.     .globl stub_MPEGA_find_syncPPC
  385.     .long  stub_MPEGA_find_syncPPC
  386.     .byte 4
  387.     .byte 1, REG68K_A7 /* r1<-A7 */
  388.     .byte 3, REG68K_A6 /* r3<-A6 */
  389.     .byte 4, REG68K_A0 /* r4<-A0 */
  390.     .byte 5, REG68K_D0 /* r5<-D0 */
  391.     .section .text
  392.     .align 2
  393. stub_MPEGA_find_syncPPC:
  394.     addi    r12, r1, -16                /* Calculate stackframe size */
  395.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  396.     stw     r1, 0(r12)                /* Store backchain pointer */
  397.     mr      r1, r12                    /* Set real stack pointer */
  398.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  399.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  400.     add     r3, r3, r12                /* by addind posSize */
  401.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  402.  
  403.     CallLib IMPEGA_MPEGA_find_sync
  404.     lwz        r11,12(r1)
  405.     mtlr    r11
  406.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  407.  
  408.     blrl                         /* Return to emulation */
  409.     .globl  stub_MPEGA_find_sync68K
  410.     .long   stub_MPEGA_find_sync68K
  411.     .byte   0                    /* Flags */
  412.     .byte   2
  413.     .byte   1, REG68K_A7
  414.     .byte   3, REG68K_D0
  415.     .section .data
  416.     .align  4
  417. stub_MPEGA_find_sync68K:
  418.     .short    0x4e75                    /* RTS */
  419.  
  420.  
  421. /* ----------------------------------------------------------------- 
  422.     MPEGA_scale (offset -66)
  423.    ----------------------------------------------------------------- */
  424.     .globl stub_MPEGA_scale
  425.     .type stub_MPEGA_scale, @function
  426.     .section .data
  427. stub_MPEGA_scale:
  428.     .short 0x4ef8
  429.     .short 0,1
  430.     .globl stub_MPEGA_scalePPC
  431.     .long  stub_MPEGA_scalePPC
  432.     .byte 4
  433.     .byte 1, REG68K_A7 /* r1<-A7 */
  434.     .byte 3, REG68K_A6 /* r3<-A6 */
  435.     .byte 4, REG68K_A0 /* r4<-A0 */
  436.     .byte 5, REG68K_D0 /* r5<-D0 */
  437.     .section .text
  438.     .align 2
  439. stub_MPEGA_scalePPC:
  440.     addi    r12, r1, -16                /* Calculate stackframe size */
  441.     rlwinm  r12, r12, 0, 0, 27        /* Align it */
  442.     stw     r1, 0(r12)                /* Store backchain pointer */
  443.     mr      r1, r12                    /* Set real stack pointer */
  444.     stw        r11,12(r1)                /* Store Enter68kQuick vector */
  445.     lhz     r12, LIB_POSSIZE(r3)        /* Get the extended library pointer */
  446.     add     r3, r3, r12                /* by addind posSize */
  447.     lwz     r3, ExtLib_MainIFace(r3)   /* Get the real interface pointer */
  448.  
  449.     CallLib IMPEGA_MPEGA_scale
  450.     lwz        r11,12(r1)
  451.     mtlr    r11
  452.     lwz     r1, 0(r1)            /* Cleanup stack frame */
  453.  
  454.     blrl                         /* Return to emulation */
  455.     .globl  stub_MPEGA_scale68K
  456.     .long   stub_MPEGA_scale68K
  457.     .byte   0                    /* Flags */
  458.     .byte   2
  459.     .byte   1, REG68K_A7
  460.     .byte   3, REG68K_D0
  461.     .section .data
  462.     .align  4
  463. stub_MPEGA_scale68K:
  464.     .short    0x4e75                    /* RTS */
  465.  
  466.  
  467.     .globl Vector68K
  468.     .globl VecTable68K
  469. Vector68K: 
  470.     .long VecTable68K
  471.     .globl VecTable68K
  472. VecTable68K:
  473.     .long   stub_Open
  474.     .long   stub_Close
  475.     .long   stub_Expunge
  476.     .long   stub_Reserved
  477.     .long   stub_MPEGA_open
  478.     .long   stub_MPEGA_close
  479.     .long   stub_MPEGA_decode_frame
  480.     .long   stub_MPEGA_seek
  481.     .long   stub_MPEGA_time
  482.     .long   stub_MPEGA_find_sync
  483.     .long   stub_MPEGA_scale
  484.     .long   -1
  485.